package com.zbkj.common.constants;

import com.google.common.collect.Lists;

import java.util.List;

/**
 *  配置类
 * +----------------------------------------------------------------------
 * | Author:
 * +----------------------------------------------------------------------
 */
public class Constants {
    public static final long TOKEN_EXPRESS_MINUTES = (60 * 24 * 3 ); //3天

    public static final int NUM_ZERO = 0;
    public static final int NUM_ONE = 1;
    public static final int NUM_TWO = 2;
    public static final int NUM_THREE = 3;
    public static final int NUM_FIVE = 5;
    public static final int NUM_SEVEN = 7;
    public static final int NUM_TEN = 10;
    public static final int NUM_ONE_HUNDRED = 100;
    //头部 token令牌key
    public static final String HEADER_AUTHORIZATION_KEY = "Authori-zation";

    //验证码redis key前缀
    public static final String VALIDATE_REDIS_KEY_PREFIX = "validatecode%s:%s";


    public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DATE_FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
    public static final String DATE_FORMAT_DATE = "yyyy-MM-dd";
    public static final String DATE_FORMAT_YEAR = "yyyy";
    public static final String DATE_FORMAT_MONTH_DATE = "MM-dd";
    public static final String DATE_FORMAT_MONTH = "yyyy-MM";
    public static final String DATE_TIME_FORMAT_NUM = "yyyyMMddHHmmss";

    public static final String DATE_TIME_FORMAT_HOUR = "yyyyMMddHH";
    public static final String DATE_FORMAT_NUM = "yyyyMMdd";
    public static final String DATE_FORMAT_START = "yyyy-MM-dd 00:00:00";
    public static final String DATE_FORMAT_END = "yyyy-MM-dd 23:59:59";
    public static final String DATE_FORMAT_MONTH_START = "yyyy-MM-01 00:00:00";
    public static final String DATE_FORMAT_YEAR_START = "yyyy-01-01 00:00:00";
    public static final String DATE_FORMAT_YEAR_END = "yyyy-12-31 23:59:59";
    public static final String DATE_FORMAT_HHMMSS = "HH:mm:ss";
    public static final String DATE_FORMAT_START_PEREND = "00:00:00";
    public static final String DATE_FORMAT_END_PEREND = "23:59:59";
    public static final String DATE_FORMAT_HHMM = "yyyy-MM-dd HH:mm";
    public static final String DATE_FORMAT_MDHMS = "MM-dd HH:mm:ss";

    public static final String DATE_FORMAT_WXPAY = "yyyy-MM-dd'T'HH:mm:ssXXX";

    //用户登token redis存储前缀
    public static final String USER_TOKEN_REDIS_KEY_PREFIX = "TOKEN_USER:";

    //默认分页
    public static final int DEFAULT_PAGE = 1;

    //默认分页
    public static final int DEFAULT_LIMIT = 20;

    public static final String UPLOAD_TYPE_IMAGE = "peimage";

    //上传类型
    public static final String UPLOAD_TYPE_FILE = "file";
    public static final String UPLOAD_MODEL_PATH_EXCEL = "excel";// excel

    //config表数据redis
    public static final String CONFIG_LIST = "config_list"; //配置列表

    //会员搜索日期类型
    public static final String SEARCH_DATE_DAY = "today"; //今天
    public static final String SEARCH_DATE_YESTERDAY = "yesterday"; //昨天
    public static final String SEARCH_DATE_LATELY_7 = "lately7"; //最近7天
    public static final String SEARCH_DATE_LATELY_30 = "lately30"; //最近30天
    public static final String SEARCH_DATE_WEEK = "week"; //本周
    public static final String SEARCH_DATE_PRE_WEEK = "preWeek"; //上周
    public static final String SEARCH_DATE_MONTH = "month"; //本月
    public static final String SEARCH_DATE_PRE_MONTH = "preMonth"; //上月
    public static final String SEARCH_DATE_YEAR = "year"; //年
    public static final String SEARCH_DATE_PRE_YEAR = "preYear"; //上一年

    public static final int CATEGORY_TYPE_MENU = 5; //菜单分类
    public static final int CATEGORY_TYPE_CONFIG = 6; //配置分类

    //CND  URL测试用
    public static String CND_URL = "https://wuht-1300909283.cos.ap-chengdu.myqcloud.com";


    // 时间类型开始时间
    public static String DATE_TIME_TYPE_BEGIN = "begin";

    // 时间类型结束时间
    public static String DATE_TIME_TYPE_END = "end";


    /**
     * 跳过自动增加域名拦截
     */
    public static final String SKIP_DOMAIN_FILTER = "skip-domain-filter";

    /** 手机验证码redis key */
    public static final String SMS_VALIDATE_PHONE = "sms:validate:code:%s:%s";
    public static final long SMS_VALIDATE_EXPIRE = 120;

    public static final String EXCLE_FILE_TYPES = ".xlsx,.xls";

    /**
     * 客户端上传资料类型
     */
    public static final String CLIENT_FILE_TYPES = "doc,docx";
    /**
     * 服务端上传资料类型
     */
    public static final String ADMIN_FILE_TYPES = "pdf,doc,docx,xlsx,xls";

    /**
     * 项目文档存储-路径前缀
     */
    public static final String PROJECT_DOC_PREFIX = "projectdoc";
    public static final String INVOICE_DOC_PREFIX = "invoicedoc";

    public static final String ORDER_DOC_PREFIX = "orderdoc";

    /**
     * 客户端下载结算文件-项目密码错误次数限制
     */
    public static final long PROJECT_PWD_ERROR_LIMIT = 5;


    /**
     * 用户创建项目每日限制
     */
    public static final String PROJECT_DAY_LIMIT_CFG = "projectDayLimit";

    /**
     * 用户创建项目总限制
     */
    public static final String PROJECT_TOTAL_LIMIT_CFG = "projectTotalLimit";

    //是否自动调用AI结算通知开关配置 0 开启 1关闭
    public static final String AI_ESTIAM_AUTO_SWITCH_CFG = "aiEstiamAutoSwitch";
    //AI结算单段文档字符数限制配置
    public static final String AI_ESTIAM_CONTENT_LIMIT_CFG = "aiEstiamContentLimit";
    //订单自动取消过期时长单位s
    public static final String AUTOM_ORDER_CANCEL_EXPIRED_CFG = "automCancelOrderExpired";
    //报告申请订单-最小订单金额限制
    public static final String REPORT_ORDER_MIN_AMOUNT = "reportOrderMinAmount";
    /**
     * 报表申请订单-支付最小流量值配置
     */
    public static final String REPORT_ORDER_MIN_FLOW_VAL = "reportOrderMinFlowVal";

    /**
     * 报表申请-字符支付流量值系数
     */
    public static final String REPORT_ORDER_CHAR_TO_FLOW_VAL = "reportOrderCharToFlowVal";

    /**
     * 注册赠送年卡开关配置
     */
    public static final String USER_REGISTE_GIFT_YEARCARD_SWITCH = "userRegisteGiftYearCardSwitch";

    /**
     * 用户每日新增
     */
    public static final String PROJECT_NEWNUM_DAY_KEY = "project:newnum:%s:%s";
    public static final long PROJECT_NEWNUM_DAY_EXPIRE = 30*60*60;
}
